
/*
常规模式 获取用户证书
*/
function JSTest_GetUserCert()
{
		  try
		{

            var  selectId=parseInt(GetUserCertType.value);
			var  certtype;
			
			switch(selectId)
			{ 
				case 1:
				{

                    /*
                    获取网证通的签名证书
                    */
					certtype= NetcaPKI.GET_USERCERT_TYPE_SIGN;
					conditon="IssuerCN~'NETCA'&&InValidity='True'&& CheckPrivKey='True'";	

					/*
					返回localCacheICert 是一个certificate的javascript对象
					*/		
					localCacheICert= NetcaPKI.getUserCert(certtype,conditon);  

					/*
				    通过getLastError()判断获取过程是正常
					*/ 
					if(NetcaPKI.getLastError()!=NetcaPKI.OK)
					{
						alert(NetcaPKI.getLastErrorMsg());
						return;
					}
			
					break; 
				}
				case 2:
				{
					/*
                    获取网证通的加密证书
                    */
					certtype= NetcaPKI.GET_USERCERT_TYPE_ENCRYPT;
					conditon="IssuerCN~'NETCA'&&InValidity='True'&& CheckPrivKey='True'";

					/*
					返回localCacheICert 是一个certificate的javascript对象
					*/	

				    localCacheICert= NetcaPKI.getUserCert(certtype,conditon);   
					if(NetcaPKI.getLastError()!=NetcaPKI.OK)
					{
						alert(NetcaPKI.getLastErrorMsg());
						return;
					}
					break; 
				}
				 
			}

			/*
			   自动化获取属性
			*/
			AutoShowtestCertficateBasePropety(localCacheICert);
	 
		}
		catch(e)
		{
			alert(e.message+"  错误码 : "+e.number);
		}  	
	}
	
	/*
		通过拇印获取用户证书
	*/
	
	function JSTest_GetUserCertBythumbprint()
	{
		/*
			先获取设备库证书集（网证通的证书）
		*/
		var certAarray= NetcaPKI.getCertsFromDevice(); 
		if(certAarray==null)
		{
			alert("找不到证书");
			return;
		}
		
		/*
			匹配拇印相同的证书
		*/
		certAarray= certAarray.thumbprint(parseInt(thumbprintAlgo.value),thumbprintvalue.value);

		/*
		   一般拇印是唯一，除非证书数组包含相同证书 localCacheICert 是一个certificatejavascript对象
		*/

		/*
		返回localCacheICert 是一个certificate的javascript对象
		*/	
		localCacheICert=certAarray[0];
		if(localCacheICert==null)
		{
			alert("找不到证书"); 
			return;
		}

		/*
		   自动化获取属性
		*/
		AutoShowtestCertficateBasePropety(localCacheICert);
	 
	}
	/*
		通过拓展OID获取用户证书
	*/
	function JSTest_GetUserCertByOid()
	{
		
		/*
			先获取设备库证书集（网证通的证书）
		*/
		var certAarray= NetcaPKI.getCertsFromDevice(); 
		if(certAarray==null)
		{
			alert("找不到证书");
			return;
		}
		/*
			匹配拇印相同扩展证书
		*/
		certAarray= certAarray.hasExtension(selectcertoidattr.value,selectcertoidattrvalue.value);

		/*
		返回localCacheICert 是一个certificate的javascript对象
		*/	
		localCacheICert=certAarray[0];
		if(localCacheICert==null)
		{
			alert("找不到证书"); 
			return;
		}
		AutoShowtestCertficateBasePropety(localCacheICert);
	 
	}


	/*
		多CA获取用户证书
	*/
	function JSTest_GetUserCertByMulCA()
	{
		
		
		if(selectmulCAissuervalue.value=="")
		{
			alert("请先设置过滤CA条件"); 
			return;
		}

		/*
			多CA使用证书库获取
		*/
		var certAarray= NetcaPKI.getCertsFromStore(); 
		if(certAarray==null)
		{
			alert("找不到证书");
			return;
		}

		/*
			默认有效和网证通的证书
		*/
		certAarray=certAarray.filter("InValidity='True'&& CheckPrivKey='True'&&CertType='Signature'");	
		
		var filter="IssuerCN~'NETCA'";
		filter+=selectmulCAissuervalue.value;

		/*
		返回localCacheICert 是一个certificate的javascript对象
		*/	
		localCacheICert= certAarray.select(filter,NetcaPKI.UIFLAG_DEFAULT_UI);
		if(localCacheICert==null)
		{
			alert("找不到证书"); 
			return;
		}

		AutoShowtestCertficateBasePropety(localCacheICert);
 		
	}